From: Keir Fraser Date: Thu, 17 Jan 2008 14:40:06 +0000 (+0000) Subject: minios: Add exit_thread prototype. Make sure exit_thread doesn't X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14445^2~31 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=41888d5a7ee1e1782c92dc186e5c5d1c0073deee;p=xen.git minios: Add exit_thread prototype. Make sure exit_thread doesn't return by accident. Signed-off-by: Samuel Thibault --- diff --git a/extras/mini-os/include/sched.h b/extras/mini-os/include/sched.h index 9f209f195d..734e441a15 100644 --- a/extras/mini-os/include/sched.h +++ b/extras/mini-os/include/sched.h @@ -39,6 +39,7 @@ struct thread* arch_create_thread(char *name, void (*function)(void *), void init_sched(void); void run_idle_thread(void); struct thread* create_thread(char *name, void (*function)(void *), void *data); +void exit_thread(void) __attribute__((noreturn)); void schedule(void); #define current get_current() diff --git a/extras/mini-os/sched.c b/extras/mini-os/sched.c index eedb1fe7ed..0b613e64d4 100644 --- a/extras/mini-os/sched.c +++ b/extras/mini-os/sched.c @@ -198,7 +198,11 @@ void exit_thread(void) list_add(&thread->thread_list, &exited_threads); local_irq_restore(flags); /* Schedule will free the resources */ - schedule(); + while(1) + { + schedule(); + printk("schedule() returned! Trying again\n"); + } } void block(struct thread *thread)